Method of identifying a correct decoding codeword

ABSTRACT

A method of searching for candidate codewords for a telecommunications system, the method comprising receiving a sequence of constellation points, producing a received FEC vector comprised of bits from the received constellation points, comparing the received FEC vector with a plurality of candidate codewords within a Dorsch decoding process using an ordered pattern, and terminating the search when a candidate codeword from among the plurality of candidate codewords is found residing within a predetermined range of a specified distance of the received FEC vector.

CROSS REFERENCE TO RELATED APPLICATIONS

This document is a divisional of U.S. patent application Ser. No.13/269347 entitled “Method of Identifying A Correct Decoding Codeword”to Banister et al., which was filed Oct. 7, 2011, now pending, which isa continuation in part of U.S. patent application Ser. No. 12/729,027entitled “Encoding and Decoding Systems and Related Methods” to Banisteret al., which was filed on Mar. 22, 2010, and issued as U.S. Pat. No.8,473,798 on Jun. 25, 2013, which application claims the benefit of thefiling date of U.S. Provisional Patent Application 61/161,843, entitled“Encoding and Decoding Systems and Related Methods” to Banister et al.,which was filed on Mar. 20, 2009, the disclosures of which are herebyincorporated entirely herein by reference.

BACKGROUND

1. Technical Field

Aspects of this document relate generally to systems and methods fortransmitting data across a telecommunication channel.

2. Background Art

In a telecommunication system, an encoded codeword of a linear blockcode may be sent across a noisy channel, such as a wirelesscommunication link or other connection. Bits of the codeword may beinitially assigned values of either −1 or 1 when first placed in thechannel. As the bits travel across the channel, noise in the channel canincrease or weaken the magnitude of a particular sent bit. On thereceiving side, once the noisy codeword is acquired by the decoder, thecodeword may be called a received vector. The decoder's purpose is toexamine the received vector and find the codeword that was originallysent. Finding the originally sent codeword may involve a Euclideansquared distance calculation or correlation between the received vectorand a collection of candidate codewords. The candidate codeword that isthe least square distance (Euclidean distance) from the received vectoror possesses the largest correlation with the received vector isgenerally selected as the most likely codeword that was sent.

SUMMARY

Implementations of a method of searching for candidate codewords for atelecommunications system may comprise receiving a sequence ofconstellation points, producing a received FEC vector comprised of bitsfrom the received constellation points, comparing the received FECvector with a plurality of candidate codewords within a Dorsch decodingprocess using an ordered pattern, and terminating the search when acandidate codeword from among the plurality of candidate codewords isfound residing within a predetermined range of a specified distance ofthe received FEC vector.

Particular implementations may comprise one or more of the followingfeatures. The method may further comprise ordering the plurality ofcandidate codewords according to a probability that each of thecandidate codewords will occur within the predetermined range of thespecified distance of the received point. The method may furthercomprise sorting the received FEC vector according to a probability ofreliability of each bit position of the received FEC vector. The methodmay further comprise generating one or more candidate codewords amongthe plurality of candidate codewords by creating one or moreperturbations to one or more first bits of a base codeword of a sortedreceived FEC vector. The method may further comprise classifying amagnitude of each bit position as a logarithmic likelihood ratio (LLR)that is calculated as a logarithm of a probability that one received bitposition has one sent value divided by a probability that the onereceived bit has a value opposite the one sent value. The method mayfurther comprise quantizing the bit positions having a highest magnitudeinto a fixed number of levels using a uniform integer scalar quantizer.

Implementations of a method of searching for candidate codewords for atelecommunications system may comprise receiving one or moreconstellation points, mapping the received constellation points into areceived FEC vector representing a point in an N-dimensional spacedetermining whether a bit position in the codeword has a positive valueor a negative value, determining whether a corresponding positionelement of the received FEC vector has a positive value or a negativevalue, comparing the bit position value with the corresponding positionelement value, re-mapping one or more position elements onto one or moreplanes of a hypercube surface, calculating a squared distance betweenthe re-mapped received FEC vector and a candidate codeword, andterminating the search if the comparison of the values result indicatesa confidence level of the one or more constellation points that ishigher than a predetermined confidence threshold.

Particular implementations may comprise one or more of the followingfeatures. The method may further comprise mapping one or more receivedFEC vector elements to a codeword at a center of a region comprised ofpoints that are less than a fixed square distance from the codeword.

Implementations of a method of searching for candidate codewords for atelecommunications system, may comprise removing a distance contributionof an element of an N-dimensional FEC vector from the N-dimensionalvector when a comparison of values indicates that a bit position valueand a corresponding position element value have a same sign and amagnitude of the FEC vector is greater than a value of one in adimension and computing a distance from a candidate codeword by mappingthe bit position in the codeword onto one or more planes of a hypercubesurface wherein the hypercube surface contains codewords as vertices.

Particular implementations may comprise one or more of the followingfeatures. The method may further comprise mapping one or more positionelements of the N-dimensional FEC vector to a codeword at a center of aregion comprised of points that are less than a fixed square distancefrom the codeword.

Implementations of a method of searching for candidate codewords for atelecommunications system may comprise receiving a plurality ofconstellation points, producing a one or more received FEC vectorscomprised of bits from the received constellation points, decoding theone or more received FEC vectors using a plurality of Dorsch decoders,comparing the one or more received FEC vectors with a plurality ofcandidate codewords within a Dorsch decoding process using an orderedpattern, releasing a best match codeword into an output buffer, andterminating the search when a codeword is found residing within apredetermined range of a specified distance of the one or more receivedFEC vectors.

Particular implementations may comprise one or more of the followingfeatures. The one or more received FEC vectors may comprise a uniqueidentifier indicating an order in which the one or more received FECvectors is received by the plurality of Dorsch decoders. The method mayfurther comprise recording, by an ordering device, an order in which theone or more received FEC vectors is received by the plurality of Dorschdecoders. The method may further comprise simultaneously decoding two ormore received FEC vectors using two or more decoders of the plurality ofDorsch decoders. The method may further comprise releasing by the outputbuffer to a downstream receiver, best match codewords in an order inwhich the codewords were received.

Implementations of a method of searching for candidate codewords for atelecommunications system may comprise receiving one or moreconstellation points, mapping the received constellation points into oneor more received FEC vectors, each received FEC vector representing apoint in an N-dimensional space, decoding the one or more received FECvectors using a plurality of Dorsch decoders, determining whether a bitposition in a candidate codeword has a positive value or a negativevalue, determining whether a corresponding position element of the oneor more received FEC vectors has a positive value or a negative value,comparing the bit position value and the corresponding element positionvalue, re-mapping one or more position elements onto one or more planesof a hypercube surface, calculating a squared distance between there-mapped received FEC vector and the candidate codeword, andterminating the search if the bit position value and the correspondingelement position value indicate a confidence level of the one or moreconstellation points that is higher than a predetermined confidencethreshold.

Particular implementations may comprise one or more of the followingfeatures. Each of the one or more received FEC vectors may comprise aunique identifier indicating an order in which the one or more FECvectors is received by the plurality of Dorsch decoders. The method mayfurther comprise recording, by an ordering device, an order in which theone or more FEC vectors is received by the plurality of Dorsch decoders.The method may further comprise simultaneously decoding two or morereceived FEC vectors using two or more decoders of the plurality ofDorsch decoders. The method may further comprise releasing by the outputbuffer to a downstream receiver, best match codewords in an order inwhich the codewords were received.

Implementations of a method of searching for candidate codewords for atelecommunications system may comprise decoding one or more received FECvectors using a plurality of Dorsch decoders, removing a distancecontribution of a position element of an N-dimensional FEC vector fromthe N-dimensional FEC vector when a comparison of values indicates thata bit position value and a corresponding position element value have asame sign and a magnitude of the FEC vector is greater than a value ofone in a dimension, and computing a distance from a candidate codewordby mapping the bit position in the codeword onto one or more planes of ahypercube surface wherein the hypercube surface contains codewords asvertices.

Particular implementations may comprise one or more of the followingfeatures. Each of the one or more received FEC vectors may comprise aunique identifier indicating an order in which the FEC vectors arereceived by the plurality of Dorsch decoders. The method may furthercomprise recording, by an ordering device, an order in which the one ormore FEC vectors is received by the plurality of Dorsch decoders. Themethod may further comprise simultaneously decoding two or more receivedFEC vectors using two or more decoders of the plurality of Dorschdecoders. The method may further comprise releasing by the output bufferto a downstream receiver, best match codewords in an order in which thecodewords were received.

Aspects and applications of the disclosure presented here are describedbelow in the drawings and detailed description. Unless specificallynoted, it is intended that the words and phrases in the specificationand the claims be given their plain, ordinary, and accustomed meaning tothose of ordinary skill in the applicable arts. The inventors are fullyaware that they can be their own lexicographers if desired. Theinventors expressly elect, as their own lexicographers, to use only theplain and ordinary meaning of terms in the specification and claimsunless they clearly state otherwise and then further, expressly setforth the “special” definition of that term and explain how it differsfrom the plain and ordinary meaning Absent such clear statements ofintent to apply a “special” definition, it is the inventors' intent anddesire that the simple, plain and ordinary meaning to the terms beapplied to the interpretation of the specification and claims.

The inventors are also aware of the normal precepts of English grammar.Thus, if a noun, term, or phrase is intended to be furthercharacterized, specified, or narrowed in some way, then such noun, term,or phrase will expressly include additional adjectives, descriptiveterms, or other modifiers in accordance with the normal precepts ofEnglish grammar. Absent the use of such adjectives, descriptive terms,or modifiers, it is the intent that such nouns, terms, or phrases begiven their plain, and ordinary English meaning to those skilled in theapplicable arts as set forth above.

Further, the inventors are fully informed of the standards andapplication of the special provisions of 35 U.S.C. §112, ¶6. Thus, theuse of the words “function,” “means” or “step” in the Description ,Drawings, or Claims is not intended to somehow indicate a desire toinvoke the special provisions of 35 U.S.C. §112, ¶6, to define theinvention. To the contrary, if the provisions of 35 U.S.C. §112, ¶6 aresought to be invoked to define the claimed disclosure, the claims willspecifically and expressly state the exact phrases “means for” or “stepfor, and will also recite the word “function” (i.e., will state “meansfor performing the function of [insert function]”), without alsoreciting in such phrases any structure, material or act in support ofthe function. Thus, even when the claims recite a “means for performingthe function of . . . ” or “step for performing the function of . . . ,”if the claims also recite any structure, material or acts in support ofthat means or step, or that perform the recited function, then it is theclear intention of the inventors not to invoke the provisions of 35U.S.C. §112, ¶6. Moreover, even if the provisions of 35 U.S.C. §112, ¶6are invoked to define the claimed disclosure, it is intended that thedisclosure not be limited only to the specific structure, material oracts that are described in the preferred embodiments, but in addition,include any and all structures, materials or acts that perform theclaimed function as described in alternative embodiments or forms of theinvention, or that are well known present or later-developed, equivalentstructures, material or acts for performing the claimed function.

The foregoing and other aspects, features, and advantages will beapparent to those artisans of ordinary skill in the art from theDESCRIPTION and DRAWINGS, and from the CLAIMS.

BRIEF DESCRIPTION OF THE DRAWINGS

Implementations will hereinafter be described in conjunction with theappended drawings, where like designations denote like elements, and:

FIG. 1 is a graphic illustration of a locus of points shaded in graythat are less than a fixed square distance from a codeword;

FIG. 2 is a graphic illustration of a new locus of points that would beless than a fixed squared distance from the codeword, with the baddistance removed;

FIG. 3 is a block diagram of a particular implementation of a decodernetwork that includes multiple decoders; and

FIG. 4 is a block diagram of another particular implementation of adecoder network that utilizes a separate ordering unit to tabulate theorder of the received vectors.

DESCRIPTION

This disclosure, its aspects and implementations, are not limited to thespecific components, frequency examples, or methods disclosed herein.Many additional components and assembly procedures known in the artconsistent with encoding and decoding systems and methods are in usewith particular implementations from this disclosure. Accordingly, forexample, although particular implementations are disclosed, suchimplementations and implementing components may comprise any components,models, versions, quantities, and/or the like as is known in the art forsuch systems and implementing components, consistent with the intendedoperation.

Implementations of a method of searching for candidate codewords in aDorsch decoding process using an optimally ordered pattern aredisclosed. A Dorsch decoder is unusual in that it is not necessary toknow how to construct a decoder for a given code. The decoding isaccomplished by using an encoder multiple times to iteratively searchfor the closest codeword to a received vector. Non-limiting examples ofimplementations of methods for terminating the search when a codeword isfound residing within a specified distance of the received point aredisclosed. In addition, various non-limiting examples of implementationsof a method for selectively mapping the received point onto a one ormore planes of one or more surfaces of a hypercube when computing thedistance to a given candidate codeword are also disclosed. Inimplementations of encoding and decoding systems disclosed in thisdocument and the appendix to the previously filed U.S. ProvisionalPatent Application No. 61/161,843, the disclosure of which waspreviously incorporated herein by reference, the various method andsystem implementations may serve to minimize the average number ofcodewords that will need to be evaluated during the decoding process,correspondingly impacting the speed (data rates) at which the decodercan be operated. Additionally, non-limiting examples of how multipledecoder instantiations can be interconnected to increase the overallthroughput of the decoder are disclosed.

In implementations of a method of searching for the candidate codewordsin a Dorsch decoding process using an optimal pattern and inimplementations of a method of terminating the search when a codeword isfound residing within a specified distance of a received constellationpoint, the collection of candidate codewords to test with the receivedvector can be generated in an ordered manner such that the probabilityof each successive codeword occurring is monotonically decreasing. Thisprocess enables the most probable codewords for matching to be checkedfirst.

A codeword for an (n,k) linear block code will contain n bits, k ofwhich can used to uniquely represent the original data that was to besent (prior to being encoded into a codeword). These k bits canarbitrarily be copied to the first k bits of the encoded codeword,whereas the remaining n-k bits are parity bits, generated using thefirst k bits and an encoding process. When an encoded n-bit codeword issent over a noisy channel, the magnitudes of each of the sent bitpositions become either more or less confident. The received FEC vectorcan be sorted by the magnitude (or confidence) of each of its bitpositions, with bits of the largest magnitude appearing first, and thebits with the least magnitude occurring last. In the sorted vector, thek most confident bits of the received FEC vector can now be treated asif they were the original user data that was sent and the n-k leastconfident bits can be treated as the parity bits during the candidatecodeword generation and distance calculation and correlation process.

The process of generating candidate codewords requires creatingperturbations to the first k bits (user data) of the base codeword ofthe sorted received FEC vector and then using the perturbations in thecomparison process. The sorted received FEC vector may have a basecodeword, represented by each of the k most likely bit positions beingmapped to a −1 if the bit position value is less than 0, and 1otherwise. The remaining n-k bit positions are generated as if acodeword was being encoded with the first k bits, but with a modifiedgeneration method. In implementations of encoding and decoding methodsdisclosed in this document, implementations of the methods include stepsthat determine how to choose a collection of the first k bit positionsto use during perturbation of the base codeword to enable generation ofnew candidate codewords.

If the noise on the communication channel can be described as AdditiveWhite Gaussian Noise (although one having ordinary skill in the artwould readily recognize that the noise may take any other form invarious implementations), the magnitude of each of the received bitpositions can be classified as an LLR (logarithmic likelihood ratio),describing the logarithm of the probability that one received bitposition takes on one sent value versus the probability that thereceived position takes on the opposite value. The value of the LLRfunction monotonically increases for increasing received magnitudes. Tointroduce error patterns in a simple way, each of the k most reliablepoints in the received vector may be quantized to a fixed number oflevels with a uniform integer scalar quantizer. Perturbation points maythen be chosen if they are equal to a target LLR sum, or if anycombination of the quantized points would reach that sum. A perturbationpoint may then have a hard decision value in the base codeword flippedand subsequently, a new codeword may be generated and tested using theperturbation point. If two points are included in a candidate codeword,the probability of both occurring simultaneously is described by the sumof each point's quantized magnitude. Accordingly, if the LLR sum startsat zero and increases by one only after all possible quantizedmagnitudes of the k most-reliable positions have been used to try toreach that sum, candidate codewords will be tried in decreasing order ofprobability of occurrence, to maximize the opportunity for a matchingcodeword to be found at the beginning of the evaluation. For theexemplary purposes of this disclosure, an example is providedillustrating a particular evaluation flow of selection of candidatecodewords for a (7,4) Hamming code. In the example, the notation p1, p2,etc. represents a parity bit.

-   -   Received Vector: [1.1, −1.8, 0.4, −0.3, 1, 0.4 , −1.1]    -   Quantized Received Vector: [11, −18, 4, 3, 10, 4, −11]    -   Sorted Quantized Received Vector: [−18, 11, −11, 10, 4, 4, 3]    -   Base Codeword: [−1, 1, −1, 1, p1, p2, p3]

The first k magnitudes of the sorted quantized received vector that areused to form the LLR sum: [18, 11, 11, 10].

Evaluation of Target LLR for the following sum values:

-   -   1-9:

No perturbations can be made at these levels (1-9) since the sum isbelow any of the possible magnitudes.

-   -   10:

A single sum can be formed by using item 4 of the first k magnitudes inthe perturbation. Thus the candidate codeword [−1, 1, −1, −1, p1, p2,p3] should be checked, where p1,p2,p3 are parity bits generated usingthe modified codeword generation method.

-   -   11:

Two different sums can be formed using either item 2 or item 3 of thefirst k magnitudes in the perturbation. Candidate codewords [−1, −1, −1,1, p1, p2, p3] and [−1, 1, 1, 1, p1, p2, p3] are equally probable.

-   -   12-17:

No perturbations can be made at these levels (12-17) since no componentscan be combined to form these sums.

-   -   18:

A single sum can be formed by using item 1 of the first k magnitudes inthe perturbation. Thus the candidate codeword [1, 1, −1, 1, p1, p2, p3]should be checked.

-   -   19-20:

No perturbations can be made at these levels (19-20) since no componentscan be combined to form these sums.

-   -   21:

Two different sums can be formed using item 4 and either items 2 or 3 ofthe first k magnitudes in the perturbation. The candidate codewords [−1,1, 1, −1, p1, p2, p3] and [−1, −1, −1, −1, p1, p2, p3] are equallyprobable.

-   -   22:

A single sum at this level (22) can be formed using items 2 and 3 of thefirst k magnitudes in the perturbation forming the candidate codeword[−1, −1, 1, 1, p1, p2, p3].

The foregoing evaluation process may be continued until all possiblecandidate codewords have been generated or a fixed number of candidatecodewords have been generated. If a candidate codeword is within a fixedsquared distance of the received FEC vector, it can be deemed to be thecodeword that was sent across the channel and no further codewords needto be tested or generated.

In implementations of a method for selectively mapping the receivedpoint onto a hypercube when computing the distance to a given candidatecodeword, when a squared distance calculation is made between a receivedvector, r, and candidate codeword, c, a bit position (dimension) in thecodeword, may have the same sign as the corresponding position(dimension), in the received vector r. If both points agree in sign fora given dimension, and the magnitude of r in that dimension is greaterthan 1, there is a distance contribution that may be referred to asbeing ‘bad’ in that dimension. This overly confident position is goodfor a correlation measurement between the two vectors but is undesirablefor a squared distance calculation because the distance is contributedfrom a dimension that has a high probability of being correct.

In implementations of the method, the bad distance is not included ifthe sign of a received bit position matches the sign of the same bitposition in the prospective codeword and the magnitude of the receivedbit position is greater than 1. This effectively maps bit positions madeextra confident by noise back onto a hyper-cube containing codewords asvertices when computing the distance from the candidate codeword. FIG. 1shows a locus of points shaded in gray 100 that are less than a fixedsquare distance from a codeword. Any received point in a gray region 100maps to the codeword at the center of the region 110. FIG. 2 shows a newlocus of points 200 that would be less than a fixed squared distancefrom the codeword, with the bad distance removed. Comparing FIG. 1 toFIG. 2, it is observed that FIG. 2 includes significantly more area thanFIG. 1, permitting a candidate codeword to be deemed the codeword thatwas sent across the channel for significantly more received vectors.Moreover, there is no corresponding increase in the probability offalsely declaring a candidate codeword as the correct codeword whenterminating the search process.

In implementations of a method of placing decoders like those disclosedin this document and in the appendix of U.S. Provisional Application No.61/161,843 in an interconnected network, the overall decoding speed of astream of received vectors may be increased. In an interconnectednetwork, any individual decoder implementing the methods described inthis document may be assigned any received FEC vector 300. Each decoder310 will decode the assigned received FEC vector 300, and signal thatdecoding is complete, releasing the best match codeword into an outputbuffer 320. The output buffer 320, which can be of any size, may releasebest match codewords in the order they were originally received to adownstream receiver. The array of decoders 320 may permit one receivedFEC vector 300 to be worked on for an extended period of time, whilestill allowing other codewords to be simultaneously decoded. Forexemplary purposes, FIG. 3 is provided to show how a particularimplementation of a decoder network that includes multiple decoders 310arranged to increase decoding speeds. As illustrated in the diagram, thedecoders 310 keep track of a unique identifier for each received vectorwhich allows each vector to be identified in the order it was received.FIG. 4 illustrates another implementation of a decoder network thatutilizes a separate ordering unit to tabulate the order of the receivedvectors 300. Any of a wide variety of arrangements is possible.

Implementations of encoding and decoding systems and related methods mayreduce the average number of codewords that will need to be evaluatedduring the decoding process, reduce the average number of codewordsevaluated while not substantially increasing the risk of error despitesignificantly more received vectors possibly being deemed the codewordthat was sent across the telecommunications channel without increasingthe probability of a false identification, and significantly increasethe speed at which the stream can be processed due to multiple decodersdecoding a stream of received vectors.

The materials used for implementations of encoding and decoding systemsmay be made of conventional materials used to make goods similar tothese in the art, such as, by non-limiting example, plastic, metals,semiconductor materials, and composites. Those of ordinary skill in theart will readily be able to select appropriate materials and manufacturethese products from the disclosures provided herein.

The implementations listed here, and many others, will become readilyapparent from this disclosure. From this, those of ordinary skill in theart will readily understand the versatility with which this disclosuremay be applied.

1. A method of searching for candidate codewords for atelecommunications system, the method comprising: receiving a sequenceof constellation points; producing a received FEC vector comprised ofbits from the received constellation points; comparing the received FECvector with a plurality of candidate codewords within a Dorsch decodingprocess using an ordered pattern; and terminating the search when acandidate codeword from among the plurality of candidate codewords isfound residing within a predetermined range of a specified distance ofthe received FEC vector.
 2. The method of claim 1, further comprisingordering the plurality of candidate codewords according to a probabilitythat each of the candidate codewords will occur within the predeterminedrange of the specified distance of the received point.
 3. The method ofclaim 1, further comprising sorting the received FEC vector according toa probability of reliability of each bit position of the received FECvector.
 4. The method of claim 3, further comprising generating one ormore candidate codewords among the plurality of candidate codewords bycreating one or more perturbations to one or more first bits of a basecodeword of a sorted received FEC vector.
 5. The method of claim 3,further comprising classifying a magnitude of each bit position as alogarithmic likelihood ratio (LLR) that is calculated as a logarithm ofa probability that one received bit position has one sent value dividedby a probability that the one received bit has a value opposite the onesent value.
 6. The method of claim 5, further comprising quantizing thebit positions having a highest magnitude into a fixed number of levelsusing a uniform integer scalar quantizer.
 7. A method of searching forcandidate codewords for a telecommunications system, the methodcomprising: receiving one or more constellation points; mapping thereceived constellation points into a received FEC vector representing apoint in an N-dimensional space; determining whether a bit position inthe codeword has a positive value or a negative value; determiningwhether a corresponding position element of the received FEC vector hasa positive value or a negative value; comparing the bit position valuewith the corresponding position element value; re-mapping one or moreposition elements onto one or more planes of a hypercube surface;calculating a squared distance between the re-mapped received FEC vectorand a candidate codeword; and terminating the search if the comparisonof the values result indicates a confidence level of the one or moreconstellation points that is higher than a predetermined confidencethreshold.
 8. The method of claim 7, further comprising mapping one ormore received FEC vector elements to a codeword at a center of a regioncomprised of points that are less than a fixed square distance from thecodeword.
 9. A method of searching for candidate codewords for atelecommunications system, the method comprising: receiving a pluralityof constellation points; producing a one or more received FEC vectorscomprised of bits from the received constellation points; decoding theone or more received FEC vectors using a plurality of Dorsch decoders;comparing the one or more received FEC vectors with a plurality ofcandidate codewords within a Dorsch decoding process using an orderedpattern; releasing a best match codeword into an output buffer; andterminating the search when a codeword is found residing within apredetermined range of a specified distance of the one or more receivedFEC vectors.
 10. The method of claim 9, wherein the one or more receivedFEC vectors comprise a unique identifier indicating an order in whichthe one or more received FEC vectors is received by the plurality ofDorsch decoders.
 11. The method of claim 9, further comprisingrecording, by an ordering device, an order in which the one or morereceived FEC vectors is received by the plurality of Dorsch decoders.12. The method of claim 9, further comprising simultaneously decodingtwo or more received FEC vectors using two or more decoders of theplurality of Dorsch decoders.
 13. The method of claim 9, furthercomprising releasing by the output buffer to a downstream receiver, bestmatch codewords in an order in which the codewords were received.
 14. Amethod of searching for candidate codewords for a telecommunicationssystem, the method comprising: receiving one or more constellationpoints; mapping the received constellation points into one or morereceived FEC vectors, each received FEC vector representing a point inan N-dimensional space; decoding the one or more received FEC vectorsusing a plurality of Dorsch decoders; determining whether a bit positionin a candidate codeword has a positive value or a negative value;determining whether a corresponding position element of the one or morereceived FEC vectors has a positive value or a negative value; comparingthe bit position value and the corresponding element position value;re-mapping one or more position elements onto one or more planes of ahypercube surface; calculating a squared distance between the re-mappedreceived FEC vector and the candidate codeword; and terminating thesearch if the bit position value and the corresponding element positionvalue indicate a confidence level of the one or more constellationpoints that is higher than a predetermined confidence threshold.
 15. Themethod of claim 14, wherein each of the one or more received FEC vectorscomprises a unique identifier indicating an order in which the one ormore FEC vectors is received by the plurality of Dorsch decoders. 16.The method of claim 14, further comprising recording, by an orderingdevice, an order in which the one or more FEC vectors is received by theplurality of Dorsch decoders.
 17. The method of claim 14, furthercomprising simultaneously decoding two or more received FEC vectorsusing two or more decoders of the plurality of Dorsch decoders.
 18. Themethod of claim 14, further comprising releasing by the output buffer toa downstream receiver, best match codewords in an order in which thecodewords were received.